package it.unipg.bipod.dataModel;

import java.sql.Timestamp;

/**
 * Richiesta mappa un'entita' "richiesta" di BiPoD.<br>
 * Le sue proprieta' rispecchiano 1-1 i campi dell'entia' corrispondente.
 * 
 * @author Lorenzo Porzi
 * 
 */
public class Richiesta {
	private int idRichiesta;
	private Timestamp dataRichiesta;
	private String qualificaDocente;
	private String ssdDocente;
	private int docente;
	private int insegnamento;
	
	/**
	 * Costruisce una nuova richiesta "vuota".
	 */
	public Richiesta() {
		this(0, new Timestamp(System.currentTimeMillis()), "", "", 0, 0);
	}
	
	/**
	 * Costruisce una richiesta con le proprieta' specificate.
	 * 
	 * @param idRichiesta
	 * @param dataRichiesta
	 * @param qualificaDocente
	 * @param ssdDocente
	 * @param docente
	 * @param insegnamento
	 */
	public Richiesta(int idRichiesta, Timestamp dataRichiesta, String qualificaDocente, String ssdDocente,
			int docente, int insegnamento) {
		setIdRichiesta(idRichiesta);
		setDataRichiesta(dataRichiesta);
		setQualificaDocente(qualificaDocente);
		setSsdDocente(ssdDocente);
		setDocente(docente);
		setInsegnamento(insegnamento);
	}
	
	/* -----------------
	 * Setters e Getters
	 * ----------------- */
	
	public void setIdRichiesta(int idRichiesta) {
		this.idRichiesta = idRichiesta;
	}

	public int getIdRichiesta() {
		return idRichiesta;
	}

	public void setDataRichiesta(Timestamp dataRichiesta) {
		this.dataRichiesta = dataRichiesta;
	}
	
	public Timestamp getDataRichiesta() {
		return dataRichiesta;
	}

	public void setQualificaDocente(String qualificaDocente) {
		this.qualificaDocente = qualificaDocente;
	}

	public String getQualificaDocente() {
		return qualificaDocente;
	}

	public void setSsdDocente(String ssdDocente) {
		this.ssdDocente = ssdDocente;
	}

	public String getSsdDocente() {
		return ssdDocente;
	}

	public void setDocente(int docente) {
		this.docente = docente;
	}

	public int getDocente() {
		return docente;
	}

	public void setInsegnamento(int insegnamento) {
		this.insegnamento = insegnamento;
	}

	public int getInsegnamento() {
		return insegnamento;
	}
	
	/* ------------
	 * Altri metodi
	 * ------------ */

	@Override
	public String toString() {
		return "Richiesta [dataRichiesta=" + dataRichiesta + ", docente="
				+ docente + ", idRichiesta=" + idRichiesta + ", insegnamento="
				+ insegnamento + ", qualificaDocente=" + qualificaDocente
				+ ", ssdDocente=" + ssdDocente + "]";
	}
	
	@Override
	public boolean equals(Object richiesta) {
		if (richiesta instanceof Richiesta)
			return getIdRichiesta() == ((Richiesta)richiesta).getIdRichiesta();
		
		return false;
	}
}
